﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;
using Sysgeprava.Entities;
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;

namespace Sysgeprava.Repository
{
    public class SysgepravaDatabaseInitializer:DropCreateDatabaseAlways<DBSYSGEPRAVAContext>
    {
        protected override void Seed(DBSYSGEPRAVAContext context)
        {
            if (context == null)
                throw new ArgumentException("context");

            GetBovino().ForEach(p => context.BOVINOes.Add(p));
            GetOperador().ForEach(p => context.OPERADORs.Add(p));
            GetSexo().ForEach(p => context.SEXOes.Add(p));
            GetEtapa().ForEach(p => context.ETAPAs.Add(p));
        }

        static List<BOVINO> GetBovino()
        {
            var bovino = new List<BOVINO>
            {
                new BOVINO
                {
                    IdBovMadre = 1,
                    CantPartos = 0,
                    FecCompra = Convert.ToDateTime("01/01/01"),
                    FecNac = Convert.ToDateTime("01/01/01"),
                    FecUltParto = Convert.ToDateTime("01/01/01"),
                    LugComp = "AAAAAAA",
                    LugNac = "AAAAAAA",
                    Nombre = "AAAAAAA",
                    NomVendedor = "AAAAAAA",
                    NroArete = "000000",
                    NroRegistro = "000000",
                    PesoAct = 00,
                    PrecComp = 00,
                    
                    FOTO_BOVINO = new FOTO_BOVINO
                    {
                        Hash = null,
                        IdBovino = 1,
                        Imagen = null
                    },

                    SEXO = new SEXO
                    {
                        Descripcion = "INDISTINTO"
                    },

                    RAZA = new RAZA
                    {
                        Descripcion = "INDISTINTA"
                    },

                    ETAPA = new ETAPA
                    {
                        Descripcion = "INDISTINTA"
                    }
                    
                }
            };

            return bovino;
        }

        static List<OPERADOR> GetOperador()
        {
            var operadores = new List<OPERADOR>
            {
                new OPERADOR {Descripcion="MOVISTAR"},
                new OPERADOR {Descripcion="CLARO"},
                new OPERADOR {Descripcion="RPM"},
                new OPERADOR {Descripcion="RPC"},
                new OPERADOR {Descripcion="BITEL"},
                new OPERADOR {Descripcion="ENTEL"}
            };
            return operadores;
        }

        static List<SEXO> GetSexo()
        {
            var sexo = new List<SEXO>
            {
                new SEXO {Descripcion="MACHO"},
                new SEXO {Descripcion="HEMBRA"}
            };
            return sexo;
        }

        static List<ETAPA> GetEtapa()
        {
            var etapa = new List<ETAPA>
            {
                new ETAPA {Descripcion="VAQUILLA"},
                new ETAPA {Descripcion="VAQUILLONA"},
                new ETAPA {Descripcion="VACA"},
                new ETAPA {Descripcion="TERNERO"},
                new ETAPA {Descripcion="TORETE"},
                new ETAPA {Descripcion="TORO"}
            };
            return etapa;
        }
    }
}
